<?php
  
require_once 'ArrayGridBase.php';

// ArrayArrayGrid Helper 类
// 功能： 将3维数组 格式化为: HTML表
// @param  Array 	$Data		需要显示的数据（2维数组）
// @param  int 	$page   	当前分页
// @param  int 	$pageline	每页行数
// @param  Array  $title		标题行数组，格式key=>value，同时影响显示的标题和列。$title中出现了的 key字段才会显示。
// 										如果 缺省则显示数组的全部内容
//	@param  Array	$opt			选项数组：
//										'select' 	=> Array()
//															'title'  选择区的标题  
//															'key'		选择区使用的KEY,即在选区中的hidden input 的value.
//										'act_title' 操作区的标题  
//										'act_key'   操作的字段。将此字段的止以 ?字段名＝字段值的方式加在url后。
//										'act_list' 	=> Array( of Array)
//																'title':	显示的标题	
//																'icon':	显示的图标
//																'url':	执行命令
//																'cond':  显示条件										
//	@param	Array	$cond	给出对应栏位取值范围

class My_View_Helper_ArrayGrid extends ArrayGridBase {

	public function ArrayGrid($Data,$page=0,$pageline=20,$title=NULL,$opt=NULL,$cond=NULL)
	{
    
    	/* Paser $opt */
   	if (isset($opt)) {
   		if (isset($opt['select'])) $this->select=$opt['select'];
   		$this->check=$this->select['key'];
   		if (isset($opt['act_list']) ) $this->act_list = $opt['act_list'];
   		if (isset($opt['act_key']) )  $this->act_key  = $opt['act_key'];
   		if (isset($opt['act_title'])) $this->act_title= $opt['act_title'];
   		$this->pageline=$pageline;
   	}
   	if (isset($cond)) {
   		$this->cond = $cond;
   	}
   	$this->title=$title;
   	$this->Data=$Data;	
   	
     $cnt=count($Data);
    	if ($cnt==0)	return '<div>没有数据</div><input type="hidden" id="_GridCnt" name="_GridCnt" value="0">';
    	
    	$nPage=intval(($cnt+$pageline-1)/$pageline);
    	if ($page>=$nPage) $page=$nPage-1;
    	$this->cpage=$page;
    	$output='<div class="tablediv">';
    	
    	$output=$output.$this->showPager($nPage);
    	
		$output=$output.'<table class="inline"><tr>';
		
		$output=$output.$this->showTitle($Data[0]);
		
		if ($page==$nPage-1) $showline=$cnt-$pageline*$page;
		else $showline=$pageline;
		
		$idx=0;
 		for($i=$page*$pageline;$i<$page*$pageline+$showline;$i++) {
 		
 				$row=$Data[$i];
				$output=$output.$this->showLine($row,$idx,$this->cond);
		  		$idx++;	  	  
  		}
	  	$output=$output.'</table></div>';
	  	$output=$output.'<input type="hidden" id="_GridCnt" name="_GridCnt" value="'.$showline.'">';
      
      //return htmlspecialchars($output);
      return $output;
	}
	

	
}
